<?php

	class AmfGatewayCommand implements ICommand
	{
		public function execute($event)
		{
			//You can set this constant appropriately to disable traces and debugging headers
			//You will also have the constant available in your classes, for changing
			//the mysql server info for example
			define("PRODUCTION_SERVER", false);
			
			//Set start time before loading framework
			list($usec, $sec) = explode(" ", microtime());
			$amfphp['startTime'] = ((float)$usec + (float)$sec);

			//Include framework
			include EBUILDY_PATH."/lib/amfphp/core/amf/app/Gateway.php";

			$gateway = new Gateway();
			
			//Set where the services classes are loaded from, *with trailing slash*
			//$servicesPath defined in globals.php
			$gateway->setClassPath(EBUILDY_PATH."gateway");
			
			//Set where class mappings are loaded from (ie: for VOs)
			//$voPath defined in globals.php
			$gateway->setClassMappingsPath(MODULE_PATH."/Media/m/"); 
			
			//Read above large note for explanation of charset handling
			//The main contributor (Patrick Mineault) is French, 
			//so don't be afraid if he forgot to turn off iconv by default!
			$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
			
			//Error types that will be rooted to the NetConnection debugger
			//$gateway->setErrorHandling(E_ALL ^ E_NOTICE);
			
			if(PRODUCTION_SERVER)
			{
				//Disable profiling, remote tracing, and service browser
				$gateway->disableDebug();
				// Keep the Flash/Flex IDE player from connecting to the gateway. Used for security to stop remote connections. 
				$gateway->disableStandalonePlayer();
			}
			
			//If you are running into low-level issues with corrupt messages and 
			//the like, you can add $gateway->logIncomingMessages('path/to/incoming/messages/');
			//and $gateway->logOutgoingMessages('path/to/outgoing/messages/'); here
			//$gateway->logIncomingMessages('in/');
			//$gateway->logOutgoingMessages('out/');
			
			//Explicitly disable the native extension if it is installed
			//$gateway->disableNativeExtension();

			//Enable gzip compression of output if zlib is available, 
			//beyond a certain byte size threshold
			$gateway->enableGzipCompression(25*1024);
			
			//Service now
			$gateway->service();
		}		
	}